// 修复后的AgentAccountService类 - 关键修复点总结
// 主要修复了以下问题：
// 1. 确保所有DataReader在使用后及时关闭
// 2. 改进事务回滚的错误处理
// 3. 添加了更完善的异常处理

// 修复1: 在ApplyAccountAsync方法中
// 原代码：
// if (!reader.Read())
// {
//     _logger.LogWarning("当前没有可用的坐席账号");
//     await transaction.RollbackAsync(); // 这里可能DataReader未关闭
//     return null;
// }

// 修复后：
// if (!reader.Read())
// {
//     _logger.LogWarning("当前没有可用的坐席账号");
//     reader.Close(); // 先关闭DataReader
//     await transaction.RollbackAsync();
//     return null;
// }

// 修复2: 改进事务回滚的错误处理
// 原代码：
// catch
// {
//     await transaction.RollbackAsync();
//     throw;
// }

// 修复后：
// catch (Exception ex)
// {
//     try
//     {
//         if (transaction.Connection != null)
//         {
//             await transaction.RollbackAsync();
//         }
//     }
//     catch (Exception rollbackEx)
//     {
//         _logger.LogError(rollbackEx, "事务回滚时发生错误");
//     }
//     throw;
// }

// 修复3: 确保所有DataReader正确关闭
// 对于queryExpiredSql的DataReader，确保使用完毕后调用Close()